﻿using System;
using System.Data;
using System.Configuration;
using System.Web;
using System.Web.Security;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.Web.UI.WebControls.WebParts;
using System.Web.UI.HtmlControls;
using MySql.Data;
using MySql.Data.MySqlClient;

/// <summary>
/// Descripción breve de UsuarioDA
/// </summary>
public static class UsuarioDA
{
    public static string usuariosInsertUsuario(string usuario, string password, string estado, string grupoid)
    {
        MySqlConnection conexion = Conexion.obtConexion();
        string consulta = @"INSERT INTO usuarios (nombrecompleto,password,usuarioestado,grupousuarioid)
                            VALUES ('" + usuario + "','" + password + "','" + estado + "'," + grupoid + ")";
        MySqlCommand comando = new MySqlCommand(consulta, conexion);
        try
        {
            conexion.Open();
            comando.ExecuteReader();
            conexion.Close();
            return "ok";
        }
        catch
        {
            return "error";
        }
    }
    public static string borrarUsuario(string usuarioid)
    {
        MySqlConnection conexion = Conexion.obtConexion();
        string consulta = "DELETE FROM usuarios WHERE usuarioid=" + usuarioid;
        MySqlCommand comando = new MySqlCommand(consulta, conexion);
        try
        {
            conexion.Open();
            comando.ExecuteReader();
            conexion.Close();
            return "Usuario eliminado correctamente";
        }
        catch
        {
            return consulta;
        }
    }
    public static string buscarusuario(string usuarionombre)
    {//recupera un usuario
        string consulta;
        MySqlConnection conexion = Conexion.obtConexion();
        string password = "error";
        consulta = "select usuarios.password as password from usuarios where nombrecompleto='" + usuarionombre+"'";
        
        MySqlCommand comando = new MySqlCommand(consulta, conexion);
        conexion.Open();
        MySqlDataReader dataReader = comando.ExecuteReader();
        while (dataReader.Read())
        {
            password = dataReader.GetValue(0).ToString();
        }
        dataReader.Close();      
        conexion.Close();
        return password;
    }

    public static string obtenerDniUsuario(string usuarionombre)
    {//recupera un usuario
        string consulta;
        MySqlConnection conexion = Conexion.obtConexion();
        string dni = "error";
        consulta = "SELECT usuarios.afiliadodni FROM usuarios WHERE nombrecompleto = '" + usuarionombre + "'";

        MySqlCommand comando = new MySqlCommand(consulta, conexion);
        conexion.Open();
        MySqlDataReader dataReader = comando.ExecuteReader();
        while (dataReader.Read())
        {
            dni = dataReader.GetValue(0).ToString();
        }
        dataReader.Close();
        conexion.Close();
        return dni;
    }

    public static DataTable selectUsuario(string usuarioid)
    {
        string consulta;
        MySqlConnection conexion = Conexion.obtConexion();
        DataTable tabla = new DataTable();
        consulta = "SELECT * FROM usuarios WHERE usuarioid=" + usuarioid;
        MySqlCommand comando = new MySqlCommand(consulta, conexion);
        conexion.Open();
        MySqlDataReader dataReader = comando.ExecuteReader();
        tabla.Load(dataReader, LoadOption.OverwriteChanges);
        conexion.Close();
        return tabla;
    }

    public static DataTable usuariosSelectUsuarios()
    {
        MySqlConnection conexion = Conexion.obtConexion();
        DataTable tabla = new DataTable("usuarios");
        string consulta = "SELECT * FROM usuarios NATURAL JOIN gruposusuarios";
        MySqlCommand comando = new MySqlCommand(consulta, conexion);
        conexion.Open();
        MySqlDataReader dataReader = comando.ExecuteReader();
        tabla.Load(dataReader, LoadOption.OverwriteChanges);
        conexion.Close();
        return tabla;
    }

    public static string usuariosUpdateUsuario(string id, string usuario, string password, string estado, string grupoid)
    {
        MySqlConnection conexion = Conexion.obtConexion();
        string consulta = @"UPDATE usuarios
                            SET nombrecompleto='" + usuario +
                            "', password='" + password +
                            "', usuarioestado='" + estado +
                            "', grupousuarioid=" + grupoid +
                            " WHERE usuarioid=" + id;
        MySqlCommand comando = new MySqlCommand(consulta, conexion);
        try
        {
            conexion.Open();
            comando.ExecuteReader();
            conexion.Close();
            return "ok";
        }
        catch
        {
            return "error";
        }
    }

    public static DataTable buscarUsuarios(string cadena)
    {
        MySqlConnection conexion = Conexion.obtConexion();
        DataTable tabla = new DataTable("usuarios");
        string consulta = @"SELECT *
                            FROM usuarios NATURAL JOIN gruposusuarios
                            WHERE (nombrecompleto LIKE '%" + cadena + "%') or (grupousuariodesc LIKE '%" + cadena + "%')";
        MySqlCommand comando = new MySqlCommand(consulta, conexion);
        conexion.Open();
        MySqlDataReader dataReader = comando.ExecuteReader();
        tabla.Load(dataReader, LoadOption.OverwriteChanges);
        conexion.Close();
        return tabla;
    }

    public static string obtenerGrupoUsuario(string nombrecompleto)
    {//Recupera el grupo del usuario
        string consulta;
        MySqlConnection conexion = Conexion.obtConexion();
        string grupo = "error";
        consulta = @"SELECT `gruposusuarios`.`descripcion`
                    FROM gruposusuarios NATURAL JOIN usuarios
                    WHERE ``usuarios`.`nombrecompleto` = '" + nombrecompleto + "'"; ;

        MySqlCommand comando = new MySqlCommand(consulta, conexion);
        conexion.Open();
        MySqlDataReader dataReader = comando.ExecuteReader();
        while (dataReader.Read())
        {
            grupo = dataReader.GetValue(0).ToString();
        }
        dataReader.Close();
        conexion.Close();
        return grupo;
    }

    public static DataTable obtenerDatosUsuario(string nombrecompleto)
    {
        MySqlConnection conexion = Conexion.obtConexion();
        DataTable tabla = new DataTable("usuarios");
        string consulta = @"SELECT
                                `gruposusuarios`.`descripcion`, `usuarios`.`nombrecompleto`,
                                `usuarios`.`usuarioid`, `usuarios`.`email`, `usuarios`.`afiliadodni`,
                                `usuarios`.`institucionid`, `usuarios`.`farmaciaid`
                            FROM
                                `gruposusuarios` NATURAL JOIN  `usuarios`
                            WHERE
                                `usuarios`.`nombrecompleto` = '" + nombrecompleto + "'";
        MySqlCommand comando = new MySqlCommand(consulta, conexion);
        conexion.Open();
        MySqlDataReader dataReader = comando.ExecuteReader();
        tabla.Load(dataReader, LoadOption.OverwriteChanges);
        conexion.Close();
        return tabla;
    }
}




